﻿#!/bin/bash

# 设置ip地址和网关，修改dhcp为固定ip
init_ip() {

    read -p "enter your IP whith netmask(192.168.1.100/24): " yourIP
    is_right=$(echo $yourIP | grep -P "^((25[0-5]|2[0-4]\d|[01]?\d{1,2})\.){3}(25[0-5]|2[0-4]\d|[01]?\d{1,2})/([0-2]?\d|3[0-2])$")
    if [ ! $is_right ]; then
        echo "输入的ip地址格式不对，正确示例： 192.168.1.250/24"
        exit 1
    fi

    read -p "enter your gateway(192.168.1.1): " yourgateway
    is_right=$(echo $yourgateway | grep -P "^((25[0-5]|2[0-4]\d|[01]?\d{1,2})\.){3}(25[0-5]|2[0-4]\d|[01]?\d{1,2})$")
    if [ ! $is_right ]; then
        echo "输入的ip地址格式不对，正确示例： 192.168.1.1"
        exit 1
    fi

    ethernet_name=$(nmcli c show | grep -o -P "(?<=ethernet)\s+[a-z0-9]+\s+$" | grep -o -P '[a-z0-9]+')

    if [ ! $ethernet_name ]; then
        echo "未能获取以太网信息,如果是无线网络，请自行设置"
        exit 2
    fi

    nmcli c mod $ethernet_name ipv4.method static &&
    nmcli c mod $ethernet_name ipv4.addr $yourIP &&
    nmcli c mod $ethernet_name ipv4.gateway $yourgateway &&
    nmcli c up $ethernet_name

}

# 设置yum源（epel源），复制本目录下的腾讯源到yum目录，并备份旧文件
init_yum_repo() {
    mkdir /etc/yum.repos.d/bak
    mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
    cp $(dirname $0)/*.repo /etc/yum.repos.d/
    yum clean all
    yum makecache
}

# 清空防火墙规则
init_firewall() {
    iptables -F
}

# 修改selinux为警告不阻止
init_selinux() {
    if [ $(getenforce) == 'Enforcing' ]; then
        sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
        setenforce 0
    fi
}

# 设置时区为东八区，并同步互联网时间
init_time_zone() {
    if [ ! "$(date -R | grep -P '\+0800$')" ]; then
        rm -f /etc/localtime
        cp -l /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    fi
    yum install ntp ntpdate
    ntpdate -u time.nist.gov
    hwclock -w
}

# 设置ssh不自动断开，如果机器设置了TMOUT也会自动断开
init_ssh() {
    sed -i "s/#ClientAliveInterval.*/ClientAliveInterval 20/" /etc/ssh/sshd_config
    sed -i "s/#ClientAliveCountMax.*/ClientAliveCountMax 3/" /etc/ssh/sshd_config
    systemctl reload sshd
}

# 安装并设置vim,并调整了一些vim的一些配置方便使用
init_vim() {
    yum install vim
    echo 'set nocp
"不兼容老式vi
set paste
"关闭换行自动缩进等多种设置
set nu
"设置行号
set ts=4
"直接按tab缩进4个空格
set expandtab
"所有tab用空格表示
set enc=utf-8
"设置编码方式utf8
filetype on
"自动识别文件类型
syntax on
"语法高亮' >>/etc/vimrc
    source /etc/vimrc
}

select your_select in init_ip init_yum_repo init_firewall init_selinux init_time_zone init_ssh init_vim exit; do
    $your_select
done
